1. Field of the Invention
The present invention relates to a data-processing apparatus which processes information that exists in distributed form on a network, and to an improvement in a data-processing method.
2. Description of Related Art
In recent years, in the field of data-processing focused on the use of computers, there has been a trend to downsizing and to the implementation of network environments such as the Internet. As a result, the chiefly used data-processing hardware and methods have exhibited a shift to a distributed system in which constituent elements such as data files and function libraries are distributed among each of the machines on the network. With this change, there has been progress in implementing an open system environment in connection with wide area networks, even in the case of private companies and laboratories. Such networks which are connected to wide area networks are known as open networks.
In a large-scale network such as is typical of open networks, it often occurs that a single unit of software will be made up of a combination of constituent elements such as data files and function libraries that are distributed among a plurality of machines. Software configured in this manner is known as a distributed system. In view of the control situation of various machines, or nodes, and the control aspects of the network, it can be envisioned that constituent elements that are disposed in a distributed manner might be migrated to another machine or directory on the network, with a change in properties such as the associated names and access privileges. The following problems arise because of such changes.
Firstly, when requesting a piece of software to perform processing, request code such as a message or a command is input, and when making this input, a specific constituent element related to processing at a given machine is specified. However, when the specified constituent element is migrated to another machine, to specify a new machine at the migration destination, it is necessary to re-perform or modify the input with respect to the software. In particular in the case in which a part of the software is configured so as to access a migrated constituent element, the migration of the constituent element is equivalent to changing the configuration of the software itself. In this case, it is necessary to change the part of the software that is performing the accessing, and to specify the new machine at the migration destination.
In the past, because of explicit name-specification with respect to machines, functions, files and the like, when a function or a file was migrated, it was necessary to change the software or input to accommodate the change. Additionally, this type of specification needed to be made before the start of processing.
In a distributed system, in order to provide service to a user reliably, it is important to build flexible software that can adapt to such changes. It is particularly desirable to be able to adapt automatically, without human intervention if at all possible, even after the start of processing.
In a network, agent-oriented technology has gain attention in recent years as a technique for achieving this flexible software architecture, and many implementations of this have been attempted. Agent-oriented technology is a software-development technology which seeks to configure software in units of agents, the term agent in this case being the processing unit of the software, which independently and flexibly adapts to a change in the environment.
For example, in Japanese Unexamined Patent Application publication H7-182174, there is a disclosure of a method of implementing remote programming. Remote programming is programming in which, in a distributed system, an agent is migrated from a node at which processing was started (known a s the local machine) to another node (known as the remote machine).
To make use of an agent, instructions and internal information are required. Instructions are used to code the operation (behavior) of the agent, and internal information is the information that is operated upon by the operation of the agent. More specifically, this internal data includes, in addition to variables and arrays, stacks, buffers, queues, flags and the like, which make up all the information required for operation of the agent. Taken together, instructions and internal information form what is known as agent information.
Instructions are coded in units of various operations, such as opening and closing of files. In remote programming, there is a special instruction, which is a go operation. The go operation causes processing which migrates an agent to a remote machine, and if during processing an instruction with respect to a file that is resident on a different machine, for example, before that instruction a go must be coded and executed.
Another example of a technology of the past for the purpose of performing processing which spans between a plurality of nodes of a network is the following (refer to Oren Etzioni and Daniel Weld "A Softbot-Based Interface to the Internet" (Communications of ACM)). In this technology, the, usual network functions such as ftp, which performs file transfer, and telnet, which provides a virtual terminal function for remote log-in, are used to perform processing which spans across a plurality of machines. Based on information which is collected during operation, automatic trial-and-error use is made of each function under software control so as to perform flexible planning in accordance with conditions, thereby performing function selection that accommodates configuration changes such as changes in files.
For example, in the case in which a desired function is transferred to another node, because an attempt to access that function at the node before the transfer will result in failure, planning is performed at the original machine (node), the access destination being changed to the second candidate and access being performed again. According to this technique, it is possible to perform flexible operation in accordance with conditions at various points in time in the system. The use of telnet, ftp and the like is held to within a range that has been pre-determined to be compatible.
However, the following problems arise with the above-described technology of the past. Firstly, in the remote programming method (Japanese Unexamined Patent Application publication H7-182174), because all users needed to code the agent operating series as instructions, the task of programming was troublesome, and there were limits to agent flexibility. Additionally, to accommodate a change in the constituent elements of the software, such as when migrating an agent in response to a go operation, or to change a node name (identifier on the network) of a machine at which an element that was to be used, it is necessary to become aware of this type of change, but there was no means provided in the past to accommodate this type of change. Furthermore, to accommodate a change in a constituent element, it is necessary to make an accommodating instruction change. In the past, however, because the access destination machine name was specified explicitly, in cases in which achievement of a purpose was not possible without changing the access destination, it was impossible at that point to change the instruction. For this reason, there was a need for a technique to flexibly accommodate a change in a constituent element. Because the frequency of changes increased the larger the scale of the network becomes, there was a particularly strong need for a method of accommodating such changes such as open networks.
In the method of Etzioni et al, there is a need during processing to continue mutual access between the local machine and the remote machine, and to perform continuous exchange of information therebetween. For this reason, if a line fault occurred during processing, causing a cutoff of the access route, it was not possible to continue normal access. Also, in the case in which the information content at a remote node is being frequently accessed in small quantities, or in which it is necessary to make a large number of accesses of the information at a remote node, and in the case in which processing must be done to a degree in real time, there are cases in which it is better to perform information processing as a process on the remote machine.
The present invention was proposed to solve the problems of the prior art as described above, and has as an object the provision of data-processing apparatus and data-processing method that flexibly accommodate a change in a constituent element of software and that provide superior immunity to line faults. More specifically, an object of the present invention is to establish the behavior of the agent, which is the executed element, in accordance with a plan that is generated based on information with regard to the constituent elements of the software. Another object of the present invention is to generate a plan efficiently, by connecting actions, based on pre-conditions and post-conditions for each action. Yet another object of the present invention is to make effective use of system resources and parallel processing, by implementing an agent as a process.
Still another object of the present invention is to provide a data-processing apparatus and a data-processing method capable of flexible operation. Yet another object of the present invention is to provide a data-processing apparatus and a data-processing method that process with superior efficiency. More specifically, this object of the present invention is to achieve flexible data processing by performing plan generation for even a node that is a transfer destination. Yet another object of the present invention is to improve the efficiency of plan generation by separating the information used in plan generation into a plurality of fields, and by using only information in fields which correspond to the type of the agent. Still another object of the present invention is the facilitation of the accommodation of a failure in migrating, by appending a pre-condition to a transfer command. Yet another object of the present invention is to continue smooth data processing even by re-generating a plan in the even that a plan execution or transfer fails.